perm filename HALHEL[HAL,HE] blob sn#089650 filedate 1975-05-07 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00012 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00005 00002	COMMENT β Definition of terms
C00008 00003	MUMBLE Classes
C00010 00004	MUMBLE Productions
C00012 00005	MOVE:	TO →→						SCAN	↑TO	¬MOVE
C00015 00006	TRAC:	LOC →→						SCAN		¬TRAC1
C00018 00007	SEXPR:	SG							↑SEXP1	¬SEXP3
C00020 00008	MUMBLE Conditional Compilation Statements
C00026 00009	MUMBLE Macro DEFINE handling
C00029 00010	Q1:	SG →→					SCAN			¬STM
C00031 00011	<END>
C00032 00012
C00041 ENDMK
C⊗;
COMMENT β Definition of terms

MUMBLE

Beware the Halhel in Space.
		Gray Lensman
;

<SYMBOLS>

; SEMI ← LARW , COMA ) RPRN ( LPRN - MINUS { SIMO } SIMC
[ LBR ] RBR + PLS * TMS / SLSH . DOT | VERT ⊗ ATSTRT
< LES > GRE = EQU ≠ NEQ ≥ GEQ ≤ LEQ @ ATNOW ¬ NOT : COLN
∨ OR ∧ AND ⊃ IMPL
↑ UPAR ↓ DNAR

<TERMINALS>

< > ≠ = | ¬ * / ; ← , ) ( @ ⊗ : - { } [ ] + ≥ ≤
∧ ∨ ⊃
I IVB ISV IAR ILB ICN IPR STC
MUMBLE
IVB	Simple arithmetic variable identifier
ISV	simple string variable identifier
IAR	array identifier
ILB	label identifier
ICN	arithmetic constant
IPR	procedure identifier
STC 	string constant
I	untyped identifier
;

<RESERVED-WORDS>

RETURN ELSE WHILE DO THEN STEP SOURCE_FILE LOAD_MODULE REQUIRE UNTIL
BEGIN IF GOTO COMMENT PROCEDURE ARRAY SCALAR END FOR ABS
DIV MOD BOOLEAN LABEL DEFINE REDEFINE EVALDEFINE EVALREDEFINE
NOMAC TRUE FALSE IFC THENC ELSEC ENDC WHILEC FORC DOC STEPC UNTILC
IFCR FORLC CASEC ASSIGNC OFC

MUMBLE Here are the HAL unique reserved words;
STOP DONE MOVE GO TO TRACING MAINTAINING ORIENTATION FROM VIA 
USING DURING MEANWHILE YELLOW BLUE APPROACH DEPARTURE DEPROACH
FORCE FREE MASS LOCATION BY TOLERANCE SEARCH ACROSS NORMAL_TO
INCREMENT REPEATING ON CENTER DRIVE ASSERT AT VECTOR
FRAME TRANS STRING DEF_WRT FIX_WRT FIXDEF_WRT
UNITS CM INCHES JIFFIES SECONDS MILLISECONDS KG GM LBS OZ RADIANS
DEGREES BOLLES EULER PLANE ATTACH LOC ORIENT WITHIN DURATION

<NON-TERMINAL-SYMBOLS>
MUMBLE I will put these in when I need  them;
SEXP FEXP BEXP VEXP E
BLAT STBLAT
MUMBLE The following are for conditional compilation;
CFLS1 CTRU1 WHILC EOFIL DPL WDPL CDPL FLDPL FRDPL CFLS2 CTRU2 NOCOND NOMORE
MUMBLE Classes;

<CLASSES>

@ALGLTP	LABEL SCALAR FRAME TRANS VECTOR STRING  MUMBLE  Algol types;
@WRT	FIXDEF_WRT DEF_WRT FIX_WRT  MUMBLE  With-respect-to operators;
@UNOPE	NOT ABS + -  MUMBLE  Unary operators;
@RL	< > = ≠ ≤ ≥ 	MUMBLE Relations;
@ALG	SCALAR FRAME TRANS VECTOR STRING BOOLEAN	MUMBLE Algol types;
@DCL	LABEL SCALAR STRING PROCEDURE DEFINE REDEFINE EVALDEFINE
	EVALREDEFINE NOMAC UNITS FRAME TRANS PLANE FIXDEF_WRT DEF_WRT FIX_WRT
@REQ	SOURCE_FILE
@I IVB ISV IAR ILB ICN IPR STC
@WRTTP	VECTOR FRAME PLANE
@FRAME	IVB YELLOW BLUE @ ⊗
@ARM	YELLOW BLUE
@EQ	≤ ≥
@S01	↑
@S02	/ *
@S03	+ -
@SL1	↑ * / + -
@SL2	* / + -
@SL3	+ -
@F01	↓
@F02	* /
@F03	+ -
@FL1	↓ * / + -
@FL2	* / + -
@FL3	+ -

MUMBLE  These are needed for conditional compilation and macros;
@THT	THEN THENC
@CONBG	IFC IFCR WHILEC CASEC FORC FORLC
@DOCA	DO DOC
@STEPCA	STEP STEPC
@UNTLCA	UNTIL UNTILC
@OFCA	OFC
@CTRUE  CTRU1 CTRU2
@CFALSE CFLS1 CFLS2
@EQC	LARW EQU
@IDD	@RESERVED @IDQ I
MUMBLE Productions;

<PRODUCTIONS>

BB0:	SG →→ BLAT SG						↑STM	¬DONE

STM:	SG →→ STBLAT SG							¬STM1
STM1:	ILB : →→					SCAN		¬STM1
	BEGIN →→					SCAN	↑CPSTM	¬SDONE
	MOVE @FRAME  →→					SCAN	↑MOVE	¬SDONE
	GO @FRAME →→					SCAN	↑GO	¬SDONE
	CENTER @ARM →→					SCAN	↑CENTER	¬SDONE
	SEARCH @FRAME →→				SCAN	↑SEARCH	¬SDONE
	STOP @FRAME →→					SCAN		¬SDONE
	ASSERT @FRAME →→				SCAN	↑ASSERT	¬SDONE
	ATTACH @FRAME →→				SCAN 	↑ATTACH	¬SDONE
	IF SG →→ SG						↑IF	¬SDONE
	FOR IVB →→					SCAN 	↑FORP	¬SDONE
	IVB ← →→					SCAN	↑ASSGN	¬SDONE
	;								¬SDONE	#Q1
SDONE:	STBLAT SG →→ SG						↓↓		#Q9

CPSTM:	STC →→						SCAN		¬CPSTM1
CPSTM1:	@ALGLTP →→					SCAN	↑DS0	¬CPSTM2
	SG							↑STM	¬CPSTM2
CPSTM2:	; →→						SCAN		¬CPSTM1
	END →→						SCAN	↓↓		#Q10

MUMBLE Declaration must be processed;
DS0:	@WRTTP (					SCAN		¬WRT
	ARRAY →→							¬DAR
IDQ:	I →→						SCAN		¬IDLIST
SEMI:	; 						SCAN	↓↓
IDLIST:	, →→						SCAN		¬IDQ
	[ →→						SCAN 3		¬BNDS	#Q3
WRT:	@WRT →→						SCAN		¬WRT1	#NOWRT
WRT1:	IVB →→						SCAN		¬WRT	#Q4
NOWRT:	) →→						SCAN		¬DS1	#Q5
BNDS:	IVB : IVB →→					SCAN		¬BNDS1	#Q6
BDNS1:	, →→						SCAN 3		¬BNDS
	] →→						SCAN		¬SEMI	#Q7

DONE:	BLAT →→								¬DONE	#Q8
MOVE:	TO →→						SCAN	↑TO	¬MOVE
	TRACING →→					SCAN	↑TRAC	¬MOVE
	MAINTAINING →→					SCAN	↑MAINT	¬MOVE
	FROM →→						SCAN  	↑FROM	¬MOVE
	VIA →→						SCAN	↑VIA	¬MOVE
	USING →→					SCAN 2	↑USING	¬MOVE
	DURING →→					SCAN	↑DURING	¬MOVE
	ON →→						SCAN	↑ON	¬MOVE
	MEANWHILE →→					SCAN	↑MEANW	¬MOVE
	SG							↓↓

GO:	TO →→						SCAN	↑TO	¬GO
	FROM →→						SCAN  	↑FROM	¬GO
	VIA →→						SCAN	↑VIA	¬GO
	USING →→					SCAN	↑USING	¬GO
	DURING →→					SCAN	↑DURING	¬GO
	ON →→						SCAN	↑ON	¬GO
	MEANWHILE →→					SCAN	↑MEANW	¬GO
	SG							↓↓

CENTER:	ACROSS →→					SCAN	↑ACROS	¬CENTER
	NORMAL_TO →→					SCAN	↑NORMT	¬CENTER
	DURING →→					SCAN	↑DURING	¬CENTER
	ON →→						SCAN	↑ON	¬CENTER
	SG 							↓↓

SEARCH:	ACROSS →→					SCAN	↑ACROS	¬SEARCH
	NORMAL_TO →→					SCAN	↑NORMT	¬SEARCH
	DURING →→					SCAN	↑DURING	¬SEARCH
	ON →→						SCAN	↑ON	¬SEARCH
	INCREMENT →→					SCAN	↑INCR	¬SEARCH
	REPEATING →→					SCAN	↑REPT	¬SEARCH
	FROM →→						SCAN	↑FROM	¬SEARCH
	THEN →→						SCAN	↑STM	¬SEARCH
	SG 							↓↓

ASSERT:	AT →→						SCAN		¬ASRT1	#Q20
ASRT1:	@FRAME →→					SCAN	↓↓		#Q21

ATTACH:	TO →→						SCAN		¬ATTC1	#Q22
ATTC1:	@FRAME →→					SCAN	↓↓		#Q23

IF:	SG							↑BEXPR	¬IF1
IF1:	THEN →→						SCAN		¬IF2	#Q24
IF2:	SG							↑STM	¬IF3
IF3:	ELSE →→						SCAN		¬IF4
	SG							↓↓
IF4:	SG							↑STM	¬IF5
IF5:	SG							↓↓

FORP:	← →→						SCAN	↑SEXPR	¬FOR1	#Q25
FOR1:	STEP →→						SCAN	↑SEXPR	¬FOR2	#Q26
FOR2:	UNTIL  →→					SCAN	↑SEXPR	¬FOR3	#Q27
FOR3:	DO →→						SCAN	↑STM	¬FOR4	#Q28
FOR4:	SG							↓↓

ASSGN:	SG							↑EXPR	¬ASSGN1
ASSGN1:	SG							↓↓

TO:	SG							↑FEXPR	¬TO1
TO1:	THEN →→						SCAN	↑STM	¬TO2	#TO2
TO2:	SG							↓↓

TRAC:	LOC →→						SCAN		¬TRAC1
	SG							↑PFEXPR	¬TRAC2
TRAC1:	= →→						SCAN	↑PVEXPR	¬TRAC3	#Q29
TRAC3:	, →→						SCAN 2		¬TRAC4	#Q30
TRAC4:	ORIENT = →→					SCAN	↑POEXPR ¬TRAC2	#Q31
TRAC2:	FOR →→						SCAN 2		¬TRAC5	#Q32
TRAC5:	IVB ← →→					SCAN	↑SEXPR	¬TRAC6	#Q33
TRAC6:	BY →→						SCAN	↑SEXPR	¬TRAC7	#Q34
TRAC7:	UNTIL →→					SCAN	↑SEXPR	¬TRAC8	#Q35
TRAC8:	WITHIN →→					SCAN	↑VEXPR	¬TRAC9	#TRAC9
TRAC9:	SG							↓↓

MAINT:	ORIENTATION →→					SCAN		¬MAINT1	#Q36
MAINT1:	SG							↓↓

FROM:	SG							↑FEXPR	¬FROM1
FROM1:	SG							↓↓

VIA:	SG							↑FEXPR	¬VIA1
VIA1:	: →→						SCAN	↑DECOR	¬VIA2	#VIA2
VIA2:	THEN →→						SCAN	↑STM	¬VIA3	#VIA3
VIA3:	, →→						SCAN		¬VIA
	SG							↓↓

USING:	DURATION @EQ →→					SCAN	↑SEXPR	¬USING1
	FORCE = →→					SCAN	↑VEXPR	¬USING1
	FREE = →→					SCAN	↑VEXPR	¬USING1
	DEPARTURE = →→					SCAN	↑VEXPR	¬USING1
	APPROACH = →→					SCAN	↑VEXPR	¬USING1
	DEPROACH = →→					SCAN	↑VEXPR	¬USING1
	MASS = →→					SCAN	↑MEXPR	¬USING1
USING1:	, →→						SCAN		¬USING
	SG							↓↓

DURING:	SG							↑STM	¬DURIN1
DURIN1:	SG							↓↓

ON:	SG							↑BEXPR	¬ON1
ON1:	DO →→						SCAN	↑STM	¬ON2	#Q36
ON2:	, →→						SCAN		¬ON
	SG							↓↓

MEANW:	SG								¬Q37

ACROS:	SG							↑PEXPR	¬ACROS1
ACROS1:	SG							↓↓

NORMT:	SG							↑VEXPR	¬NORMT1
NORMT1:	SG							↓↓

INCR:	= →→						SCAN	↑SEXPR	¬INCR1	#Q38
INCR1:	SG							↓↓

REPT:	SG							↑STM	¬REPT1
REPT1:	SG							↓↓


SEXPR:	SG							↑SEXP1	¬SEXP3
SEXP3:	SEXP SG →→ SG						↓↓		#Q50
SEXP1:	ICN →→ SEXP					SCAN		¬SEXP1
	IVB →→ SEXP					SCAN		¬SEXP1
	SEXP @S01 SEXP @SL1 →→ SEXP @SL1		SCAN		¬SEXP1
	SEXP @S02 SEXP @SL2 →→ SEXP @SL2		SCAN		¬SEXP1
	SEXP @S03 SEXP @SL3 →→ SEXP @SL3		SCAN		¬SEXP1
	SEXP @SL1					SCAN		¬SEXP1
	SEXP @SL1 SEXP SG →→ SEXP SG					¬SEXP1
	SEXP SG							↓↓
	(						SCAN	↑SEXPR	¬SEXP2
	SG								¬Q51
SEXP2:	( SEXP ) →→ SEXP				SCAN		¬SEXP1	#Q52


FEXPR:	SG							↑FEXP1	¬FEXP3
FEXP3:	FEXP SG →→ SG						↓↓		#Q53
FEXP1:	ICN →→ FEXP					SCAN		¬FEXP1
	IVB →→ FEXP					SCAN		¬FEXP1
	FEXP @F01 FEXP @FL1 →→ FEXP @FL1		SCAN		¬FEXP1
	FEXP @F02 FEXP @FL2 →→ FEXP @FL2		SCAN		¬FEXP1
	FEXP @F03 FEXP @FL3 →→ FEXP @FL3		SCAN		¬FEXP1
	FEXP @FL1					SCAN		¬FEXP1
	FEXP @FL1 FEXP SG →→ FEXP SG					¬FEXP1
	FEXP SG							↓↓
	(						SCAN	↑FEXPR	¬FEXP2
	SG								¬Q54
FEXP2:	( FEXP ) →→ FEXP				SCAN		¬FEXP1	#Q55
MUMBLE Conditional Compilation Statements;

IF0:	 IFC			EXEC CPSHBT CPSHEY CNDRCN PSHLST ∞∞
							SCAN 	↑CONX 	¬IF1

IF1:	 IFC E @THT →→ CTRU1	EXEC TWCOND CPOPBT POPLST		¬IF2  #XXQQ
IF2:	 CTRU1			EXEC TOMACN		PRESUME		¬IF3
	 CFLS1			EXEC SWPOFF CPOPET PSHLST ∞∞
							SCAN 		¬IF4  #XXQQ 

MUMBLE IF ABOVE LINE BOMBS, SOMETHING'S REALLY WRONG;
IF3:	 WDPL CTRU1 ENDC →→ WDPL ∞∞
				EXEC SWICHM CPOPET	PRESUME	↓↓
	 @CTRUE ENDC →→		EXEC CPOPET CNDRCP 	PRESUME	↓↓
	 CTRU1 ELSEC →→ CFLS2	EXEC SWPOFF CPOPET FRMACN PSHLST ∞∞
							SCAN 		¬IF4  #XXQQ

IF4:	 WDPL CFLS1 ENDC →→	EXEC FREMBW SWPON POPLST ∞∞
							PRESUME	↓↓
	 @CFALSE ENDC →→	EXEC SWPON TOMACN CNDRCP POPLST ∞∞
							PRESUME	↓↓
	 CFLS1 ELSEC →→ CTRU2	EXEC SWPON CPSHEY TOMACN POPLST ∞∞
							PRESUME		¬IF3
	 NOCOND ENDC →→					SCAN 		¬IF4
	 @CONBG →→ NOCOND				SCAN 		¬IF4
	 SG →→						SCAN 		¬IF4  #XXQQ

IF5:	 IFCR →→ IFC		EXEC CPSHBT CPSHEY CNDRCY PSHLST ∞∞
							SCAN	↑CONX	¬IF1	#XXQQ 

WH0:	 WHILEC →→		EXEC SETDLM CPSHBT CPSHEN PSHLST ∞∞
							SCAN 		¬WH1
WH1:	 STC			EXEC OFFDLM		SCAN 		¬WH2
WH2:	 @DOCA →→ WDPL		EXEC SETDLM DWPREP 	SCAN    ↑CONX  ¬WH3
WH3:	 STC WDPL SG ENDC →→ WDPL ∞∞
				EXEC DFENT OFFDLM SETWHL CPOPBT CPOPET POPLST ∞∞
							PRESUME ↓↓

CS0:	 CASEC			EXEC CPSHBT CPSHEN PSHLST ∞∞
							SCAN 	↑CONX 	¬CS1 
CS1:	 CASEC E @OFCA →→ CDPL CTRU1 ∞∞
				EXEC SETDLM SWPOFF CPOPET DCPREP ∞∞
								 	¬CSB
CS2:	 CDPL CFLS1 SG , →→ CDPL CFLS1 ∞∞
				EXEC TWCSCN				¬CSB
	 CDPL CFLS1 SG ENDC →→	EXEC FRMBCE OFFDLM SWPON TOMACN CPOPBT POPLST ∞∞
							PRESUME	↓↓
	 CDPL CTRU1 SG , →→ CDPL CTRU1 ∞∞
				EXEC DFENT1 OFFDLM SETCSE CPOPBT CPOPET POPLST ∞∞
							PRESUME		¬CS3
	 CDPL CTRU1 SG ENDC →→ CDPL NOMORE ∞∞
				EXEC DFENT1 OFFDLM SETCSE CPOPBT CPOPET POPLST ∞∞
							PRESUME		¬CS4
	 @CONBG SG →→ SG NOCOND				SCAN	↑CSA    ¬CS2
CSA:	 NOCOND ENDC →→					SCAN	↓↓
	 @CONBG →→ NOCOND				SCAN	↑CSA	¬CSA
	 SG →→						SCAN		¬CSA #XXQQ
CSB:	 CTRU1						SCAN	↑CONX   ¬CS2
	 CFLS1						SCAN 2          ¬CS2   #TRAP
CS3:	 CDPL CTRU1 ENDC →→ CDPL CFLS1 ∞∞
				EXEC FRMBCT SETDLM SWPOFF CPSHBT PSHLST ∞∞
							SCAN 2		¬CS2  #XXQQ
CS4:	 CDPL NOMORE ENDC →→	EXEC FREMBW OFFDLM SWPON ∞∞
							PRESUME	↓↓	      #XXQQ


FR0:	 FORC →→ FRDPL		EXEC DWPREP CPSHBT CPSHEN PSHLST MACOFF ∞∞
							SCAN	↑FM0	¬FR1
FR1:	 SG @IDD @EQC →→ SG	EXEC DFPINS		SCAN 	↑CONX 	¬FR2
FR2:	 FRDPL E @STEPCA →→ FRDPL ∞∞
				EXEC GTSTRT		SCAN 	↑CONX 	¬FR3
FR3:	 FRDPL E @UNTLCA →→ FRDPL ∞∞
				EXEC GTSTEP		SCAN 	↑CONX 	¬FR4
FR4:	 FRDPL E @DOCA →→ CTRU1 FRDPL ∞∞
				EXEC DFSET GETERM SETDLM		¬FR41
FR41:	 CTRU1 SG					SCAN 	↑CONX 	¬FR5
	 CFLS1 SG		EXEC SWPOFF CPOPET	SCAN	↑CONX	¬FR51
FR5:	 CTRU1 FRDPL SG ENDC →→ FRDPL ∞∞
				EXEC DFENT FFPOP OFFDLM SETFR CPOPBT CPOPET POPLST ∞∞
							PRESUME		¬FR6
FR51:	 CFLS1 FRDPL SG ENDC →→ ∞∞
				EXEC OFFDLM FREMBN SWPON CPOPBT POPLST ∞∞
							PRESUME	↓↓
FR6:	 FRDPL ENDC →→ CTRU1 FRDPL ∞∞
				EXEC TWNUM 				¬FR7
FR7:	 CTRU1 FRDPL →→ FRDPL	EXEC SWCHFR		PRESUME		¬FR6
	 CFLS1 FRDPL →→		EXEC FREMBF		PRESUME	↓↓


FL0:	 FORLC →→ FLDPL		EXEC DWPREP CPSHBT CPSHEN PSHLST MACOFF ∞∞
							SCAN	↑FM0	¬FL1
FL1:	 SG @IDD @EQC →→ SG	EXEC DFPINS GETACT	SCAN 		¬FL2
FL2:	 @DOCA →→		EXEC DFSET SETDLM	SCAN	↑CONX	¬FL3
FL3:	 FLDPL SG ENDC →→ FLDPL EXEC DFENT FFPOP OFFDLM SETFL CPOPBT CPOPET POPLST ∞∞
							PRESUME		¬FL4
FL4:	 FLDPL ENDC →→ CTRU1 FLDPL ∞∞
				EXEC TWACT 				¬FL5
FL5:	 CTRU1 FLDPL →→ FLDPL	EXEC SWCHFL	   	PRESUME		¬FL4 
	 CFLS1 FLDPL →→		EXEC FREMBF		PRESUME	↓↓

FM0:	 SG			EXEC MACON		SCAN	↓↓

MUMBLE Macro DEFINE handling;

DF0:	 DEFINE →→		EXEC MACOFF DLMPSH DPSHBT ∞∞
							SCAN		¬DFR
DFR:	 @IDD →→ DPL		EXEC DFPREP		SCAN 		¬DFR1 #Q4
DFR1:	 ( →→			EXEC MACOFF		SCAN 2 		¬DPA  #LEQ

DPA:	 SG @IDD , →→ SG	EXEC DFPINS		SCAN 2 		¬DPA
	 SG @IDD ; →→ SG	EXEC DFPINS		SCAN 2 		¬DPA
	 SG @IDD ) →→ SG	EXEC MDFPNS		SCAN 		¬LEQ  #Q4
LEQ:	 STC →→			EXEC SPDMBD		SCAN 		¬LEQ1
LEQ1:	 SG @EQC →→ SG		EXEC DLMPOP DFSET SETDLM ∞∞
							SCAN 	↑CONX 	¬DEQ  #XXQQ
DEQ:	 DPL SG1 , →→		EXEC DFENT FFPOP ENDMAC EVMCOF OFFDLM DLMPSH ∞∞
							SCAN 		¬DFR
	 SG SG1 ; →→		EXEC DEFOFF DFENT FFPOP ENDMAC SWDLM OFFDLM DPOPBT ∞∞
								↓↓ 	      #Q20

RDF:	REDEFINE →→		EXEC SETRDF MACOFF DLMPSH DPSHBT SCAN	¬DFR	#XXQQ 

EDF:	EVALDEFINE →→		EXEC SETEDF DLMPSH DPSHBT SCAN		¬DFR	#XXQQ 

ERF:	EVALREDEFINE →→ EVALDEFINE EXEC SETRDF				¬EDF	#XXQQ 

ASG:	ASSIGNC →→		EXEC DLMPSH DPSHBT INTSCN ∞∞
							SCAN		¬AS1 
AS1:	ICN →→ ASSIGNC		EXEC ASGOFF		SCAN		¬AS2	#Q116 
AS2:	STC →→			EXEC SPDMBD		SCAN		¬AS3 
AS3:	SG = →→ SG		EXEC DLMPOP DFSET SETDLM ∞∞
							SCAN	↑CONX	¬AS4	#XXQQ
AS4:	SG SG1 , →→		EXEC ASGENT FFPOP OFFDLM DLMPSH INTSCN ∞∞
							SCAN		¬AS1 
	SG SG1 ; →→		EXEC ASGENT FFPOP SWDLM OFFDLM DPOPBT ∞∞
								↓↓		#Q20 

NMC:	NOMAC →→		EXEC MACOFF		SCAN		¬NM1	#XXQQ 
NM1:	I →→			EXEC MACON SCNBAK		↓↓		#Q118 


Q1:	SG →→					SCAN			¬STM
Q2:	SG →→					SCAN			¬STM
Q3:	SG →→					SCAN			¬STM
Q4:	SG →→					SCAN			¬STM
Q5:	SG →→					SCAN			¬STM
Q6:	SG →→					SCAN			¬STM
Q7:	SG →→					SCAN			¬STM
Q8:	SG →→					SCAN			¬STM
Q9:	SG →→					SCAN			¬STM
Q10:	SG →→					SCAN			¬STM
Q20:	SG →→					SCAN			¬STM
Q21:	SG →→					SCAN			¬STM
Q22:	SG →→					SCAN			¬STM
Q23:	SG →→					SCAN			¬STM
Q24:	SG →→					SCAN			¬STM
Q25:	SG →→					SCAN			¬STM
Q26:	SG →→					SCAN			¬STM
Q27:	SG →→					SCAN			¬STM
Q28:	SG →→					SCAN			¬STM
Q29:	SG →→					SCAN			¬STM
Q30:	SG →→					SCAN			¬STM
Q31:	SG →→					SCAN			¬STM
Q32:	SG →→					SCAN			¬STM
Q33:	SG →→					SCAN			¬STM
Q34:	SG →→					SCAN			¬STM
Q35:	SG →→					SCAN			¬STM
Q36:	SG →→					SCAN			¬STM
Q37:	SG →→					SCAN			¬STM
Q38:	SG →→					SCAN			¬STM
Q39:	SG →→					SCAN			¬STM
Q50:	SG →→					SCAN			¬STM
Q51:	SG →→					SCAN			¬STM
Q52:	SG →→					SCAN			¬STM
Q53:	SG →→					SCAN			¬STM
Q54:	SG →→					SCAN			¬STM
Q55:	SG →→					SCAN			¬STM
Q56:	SG →→					SCAN			¬STM
Q57:	SG →→					SCAN			¬STM
Q58:	SG →→					SCAN			¬STM
Q59:	SG →→					SCAN			¬STM

MUMBLE  ERROR PRODUCTION FOR TOO MANY ENDC'S;
Q117:	SG →→					SCAN			¬STM
<END>
β